package br.unirio.webdisco.dao.bo;

import java.util.ArrayList;
import java.util.List;

import br.unirio.webdisco.dao.conn.BasePostgresDAO;
import br.unirio.webdisco.dao.conn.DAOFactory;
import br.unirio.webdisco.entity.Doenca;
import br.unirio.webdisco.entity.Pesquisa;
import br.unirio.webdisco.entity.Usuario;
import br.unirio.webdisco.dao.bo.BaseBO;

public class PesquisaBO extends BaseBO<Pesquisa> {
	private static PesquisaBO instancia;
	
	public static PesquisaBO getInstance() {
		if (instancia == null)
			instancia = new PesquisaBO();
		return instancia;
	}
	

	@Override
	public void incluir(Pesquisa pesquisa) throws Exception {
		BasePostgresDAO<Pesquisa> dao = DAOFactory.getInstance().getPesquisaDAO();
		dao.incluir(pesquisa);
	}

	@Override
	public void alterar(Pesquisa pesquisa) throws Exception {
		BasePostgresDAO<Pesquisa> dao = DAOFactory.getInstance().getPesquisaDAO();
		dao.alterar(pesquisa);
	}

	@Override
	public void excluir(Pesquisa pesquisa) throws Exception {
		BasePostgresDAO<Pesquisa> dao = DAOFactory.getInstance().getPesquisaDAO();
		dao.excluir(pesquisa);
	}
	
	@Override
	public Integer count() throws Exception {
		BasePostgresDAO<Pesquisa> dao = DAOFactory.getInstance().getPesquisaDAO();
		return dao.count();
	}
	
	@Override
	public List<Pesquisa> listar(Integer paginaTamanho, Integer paginaAtual) throws Exception {
		BasePostgresDAO<Pesquisa> dao = DAOFactory.getInstance().getPesquisaDAO();
		return dao.listar(paginaTamanho, paginaAtual);
	}
	
	public List<Doenca> listarDoencas() throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		return dao.listar(1,1);
	}
	
	@Override
	public Pesquisa consultarPorId(Integer id) throws Exception {
		BasePostgresDAO<Pesquisa> dao = DAOFactory.getInstance().getPesquisaDAO();
		return dao.consultarPorId(id);
	}

	@Override
	public List<Pesquisa> consultar(String parametros) throws Exception {
		BasePostgresDAO<Pesquisa> dao = DAOFactory.getInstance().getPesquisaDAO();
		return dao.consultar(parametros);
	}
}